package com.wyx.suanfa;

/**
 * @author 王艺锡
 * @version 1.0
 */
public class searchRange {
    public static void main(String[] args) {
        //给你一个按照非递减顺序排列的整数数组 nums，和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
        //
        //如果数组中不存在目标值 target，返回 [-1, -1]。
        //
        //你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

    }
}
/*class Solution {
    public int[] searchRange(int[] nums, int target) {
        //查询左侧第一个大于或等于target的下标，如果是大于则表示没有target
        int leftIndex = binarySearch(nums,target,true);
        //查询右侧第一个大于target的下标
        int rightIndex = binarySearch(nums,target,false) - 1;
        if(leftIndex <= rightIndex && rightIndex < nums.length &&
            nums[leftIndex] == target && nums[rightIndex] == target
        ){
            return new int[]{leftIndex,rightIndex};
        }
        return new int[]{-1,-1};
    }

    private int binarySearch(int[] nums, int target,boolean flag){
        int left = 0;
        int right = nums.length - 1;
        int ret = nums.length;
        while(left <= right){
            int mid = (left + right) / 2;
            if(nums[mid] > target || (flag && nums[mid] == target)){
                right = mid - 1;
                ret = mid;
            }else{
                left = mid + 1;
            }
        }
        return ret;

    }
}*/
